The use of remote computing services, such as remote program execution and remote data storage, has greatly increased in recent years. Customers may reduce expenses and overhead by purchasing these services from a computing resource service provider (also referred to as a service provider). Customer applications may be distributed over multiple virtual machine instances and computing systems. The virtual machine instances may be controlled by a virtualization layer operating on a computing system. The virtualization layer may expose one or more logical volumes to the virtual machine instances. The logical volumes may be implemented by one or more data storage servers using one or more block-level storage devices. The data storage servers implementing the logical volumes may be distributed over various geographical regions. Furthermore, the logical volume may be duplicated on a plurality of the data storage servers. The service provider may ensure that the duplicate volume contains the same information and when customers modify the logical volume the modifications are reflected in each duplicate logical volume.
Providing remote services in a cost-effective manner can be challenging. For instance, a computing resource service provider can use the same hardware to support multiple resources. While, on average, the hardware may be able to support the resource usage demand of multiple customers, there can be points at which overloading occurs. The computer resources that provide services to customers may employ various techniques to protect the computer resources from an overwhelming number of service requests that could potentially overload the computer resources. In general, a computer resource is considered to be in an “overloaded” state if it is not able to provide the expected quality of service for at least some portion of customer requests it receives. Furthermore different hardware and software configurations of the computing resources used to provide remote program execution and remote data storage may affect performance and degradation of the computing resources during intervals of heavy utilization. It may be difficult for the computing resource service provider to determine which combinations of hardware and software configurations will perform the best for the given situation or have a higher risk of performance degradation, for example during intervals of heavy utilization by customers of the computing resource service provider.